Перем ЮнитТест;

#Область ОбработчикиСобытийМодуля

Функция Версия() Экспорт
	Возврат "1.0";
КонецФункции

Функция ПолучитьСписокТестов(МенеджерТестирования) Экспорт
	
	ЮнитТест = МенеджерТестирования;

	СписокТестов = Новый Массив;
	СписокТестов.Добавить("ТестСуществование");
	СписокТестов.Добавить("TestConstructor");

	СписокТестов.Добавить("ТестДобавлениеНеименнованногоЭлемента");
	СписокТестов.Добавить("ТестДобавлениеИменованногоЭлемента");

	Возврат СписокТестов;

КонецФункции

#КонецОбласти

#Область ОбработчикиТестирования

Процедура ТестСуществование() Экспорт

	СхемаXML = Новый СхемаXML;
	Коллекция = СхемаXML.ОбъявленияЭлементов;

	ЮнитТест.ПроверитьРавенство(ТипЗнч(Коллекция), Тип("КоллекцияИменованныхКомпонентXS"));
	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 0);
	
КонецПроцедуры

Procedure TestConstructor() Export

	Schema = New XMLSchema;
	Collection = Schema.ElementDeclarations;

	ЮнитТест.ПроверитьРавенство(TypeOf(Collection), Type("XSNamedComponentMap"));
	ЮнитТест.ПроверитьРавенство(Collection.Count(), 0);

EndProcedure

Процедура ТестДобавлениеНеименнованногоЭлемента() Экспорт

	СхемаXML = Новый СхемаXML;
	Коллекция = СхемаXML.ОбъявленияЭлементов;

	Элемент = Новый ОбъявлениеЭлементаXS;
	СхемаXML.Содержимое.Добавить(Элемент);

	ЮнитТест.ПроверитьРавенство(СхемаXML.ОбъявленияЭлементов.Количество(), 0);
	
КонецПроцедуры

Процедура ТестДобавлениеИменованногоЭлемента() Экспорт

	СхемаXML = Новый СхемаXML;
	Коллекция = СхемаXML.ОбъявленияЭлементов;

	Элемент = Новый ОбъявлениеЭлементаXS;
	Элемент.Имя = "test";
	СхемаXML.Содержимое.Добавить(Элемент);

	ЮнитТест.ПроверитьРавенство(Коллекция.Количество(), 1);
	ЮнитТест.ПроверитьРавенство(Коллекция.Получить(0), Элемент);
	ЮнитТест.ПроверитьРавенство(Коллекция.Получить("test"), Элемент);

КонецПроцедуры

#КонецОбласти